# 定义一个匿名函数 A，该函数不接受任何参数，返回固定值 100
A = lambda: 100

# 打印函数 A 本身，输出结果为 <function <lambda> at 0x...>，表示这是一个函数对象
print(A)

# 调用函数 A 并打印其返回值，输出结果为 100
print(A())

# 定义一个匿名函数 a_b，接受两个参数 a 和 b，返回它们的和
a_b = lambda a, b: a + b
print(a_b(1, 2))  # 输出结果为 3

# 定义一个匿名函数 else_b，接受两个参数 a 和 b，返回较大的值
else_b = lambda a, b: a if a > b else b
print(else_b(1, 2))  # 输出结果为 2

# 定义一个匿名函数 b_c，接受三个参数 a、b 和 c（c 的默认值为 100），返回它们的和
b_c = lambda a, b, c=100: a + b + c
print(b_c(1, 2))  # 输出结果为 103

# 定义一个包含字典的列表，每个字典包含 "name" 和 "age" 两个键
name_c_age_ = [{"name": "a", "age": 1}, {"name": "b", "age": 2}, {"name": "c", "age": 3}]

# 使用匿名函数作为 key，按 "name" 键的值对列表进行降序排序
name_c_age_.sort(key=lambda x: x["name"], reverse=True)
print(name_c_age_)

# 使用匿名函数作为 key，按 "name" 键的值对列表进行升序排序
name_c_age_.sort(key=lambda x: x["name"])
print(name_c_age_)


def sum_all(a, b, f):
    """
    计算两个值经过函数处理后的和。

    参数:
    a (int/float): 第一个值，将作为函数 f 的输入。
    b (int/float): 第二个值，将作为函数 f 的输入。
    f (function): 一个函数，接受一个参数并返回一个值，用于处理 a 和 b。

    返回值:
    int/float: 返回 f(a) 和 f(b) 的和。
    """
    return f(a) + f(b)


# 调用 sum_all 函数，计算 10 和 20 的平方和
print(sum_all(10, 20, lambda x: x ** 2))
